非線形回帰分析 - 10

二次曲線のパラメータの推定

切片,a0,をシフト

\(\Large \displaystyle y_i = a_0 + a_1 x_i + a_2 x_i^2 \)

 

a0       3.579131 3.9384 4.579131 5.079131 5.579131
δ       -1 -0.5 0 0.5 1
a1       0.85525 0.62007 0.41489 0.2097 0.00456
a2       1.1270 1.1442 1.1614 1.1786 1.1958
                 
i x y   \( \hat{y} \)
1 0 5   3.579131 4.079131 4.579131 5.079131 5.579131
2 2 10   9.737739 9.896167 10.0546 10.21304 10.37152
3 3 15   16.19812 16.23736 16.27661 16.31586 16.35517
4 4 25   24.91255 24.867 24.82147 24.77593 24.73045
5 6 50   49.10355 48.99162 48.87973 48.76782 48.65592
6 9 102   102.2954 102.3419 102.3885 102.435 102.4814
                 
S (\(y_i - \hat{y} \)の平方和)       4.421685 3.541263

3.2476
(Se)

3.540842 4.420841
dS (Seとの差分)       1.174036 0.293614 0 0.293193 1.173192
                 

 

切片を変えて傾きを近似すると,このようなグラフを得ることができます.

ここで,S,Se,は,

・残差平方和

推定値からの残差

\(\Large \displaystyle Se = \sum_{i=1}^{n} \left( y_i -\hat{a_0} - \hat{a_1} x_i - \hat{a_2} x_i^2 \right)^2 \)

a0をシフトさせたときの,推定値からの残差

\(\Large \displaystyle S = \sum_{i=1}^{n} \left( y_i -a_0 - \hat{a_1} x_i - \hat{a_2} x_i^2 \right)^2 \)

であり,傾きの値a0を,δ,だけシフトさせて,固定し,その際のa1, a2の推定値をソルバーで推定しました.

dS,を見ていただけるとわかるように,推定値,Seが一番小さく,ほぼ左右対称に増加していることがわかります.

グラフ化すると,

のように,二乗+定数できれいに近似できます.

二次曲線の近似においてもきれいに近似でき,

\(\Large \displaystyle y = 3.2476 + 1.1736 \ \delta^2 \)

ここで,分散値は,

・分散

\(\Large \displaystyle Ve = \frac{1}{n-3} \sum_{i=1}^{n} \left(y_i -\hat{a_0} - \hat{a_1} x_i \right)^2 = \frac{Se}{n-2} = \frac{3.2476}{6-3} = 1.0826 \)

であり(a0,a1,の二つのパラメータが2つあるので,自由度は,n-3),

\(\Large \displaystyle 1.1736 \ \delta^2 = 1.0826 \)

となるδがSEとなるので,

\(\Large \displaystyle \delta^2 = \frac{1.0826}{1.1736} = 0.9224 \)

\(\Large \displaystyle SE_{a_0} = \sqrt{\delta^2} = 0.96042 \)

と推定できます.

 

・Rによる推定

Rでの近似を行ってみると,

プログラムは,

xx <- c(0,2,3,4,6,9)
yy <- c(5,10,15,25,50,102)
plot(xx,yy)
fm<-nls(yy~a0+a1*xx+a2*xx^2,start=c(a0=5,a1=1,a2=1),trace=TRUE)
summary(fm)

で,結果は,

Parameters:
Estimate Std. Error t value Pr(>|t|)
a0 4.57931 0.96042 4.768 0.01752 *
a1 0.41473 0.4869 0.852 0.45693
a2 1.16144 0.05045 23.022 0.00018 ***

とドンピシャ一致することがわかります.

Kyplotにおいても,

推定値 標準誤差(SE)
A1 4.57931 0.96042
A2 0.414734 0.486903
A3 1.161442 0.05045

と同じ結果となります(ということはこの二つのソフトは同じアルゴリズムで標準誤差を計算?)

次は,a1,をシフトしてみましょう.

 

 

l tr